React용 스토리북 — 글로벌 및 애드온 및 스토리
4328 단어 reactprogrammingjavascriptwebdev
지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.
Storybook을 사용하면 다양한 매개변수를 사용하여 구성 요소의 프로토타입을 쉽게 만들 수 있습니다.
이 기사에서는 Storybook을 사용하여 전역과 작업하는 방법을 살펴보겠습니다.
스토리 내 글로벌 소비
스토리 내에서 전역을 소비할 수 있습니다.
이를 위해 우리는 스토리 함수에서
globals
속성을 얻습니다.예를 들어 다음과 같이 작성할 수 있습니다.
.storybook/preview.js
export const globalTypes = {
locale: {
name: 'Locale',
description: 'locale',
defaultValue: 'en',
toolbar: {
icon: 'globe',
items: [
{ value: 'en', right: '🇺🇸', title: 'English' },
{ value: 'fr', right: '🇫🇷', title: 'Français' },
{ value: 'zh', right: '🇨🇳', title: '中文' },
],
},
},
};
src/stories/Button.stories.js
import React from 'react';
import { Button } from './Button';
export default {
title: 'Example/Button',
component: Button,
argTypes: {
backgroundColor: { control: 'color' },
},
};
const getCaptionForLocale = (locale) => {
switch (locale) {
case 'en': return 'Hello';
case 'fr': return 'Bonjour';
case 'zh': return '你好';
default:
return 'Hello'
}
}
const Template = (args, { globals: { locale } }) => <Button {...{ ...args, label: getCaptionForLocale(locale) }} />;
locale
파일로 .storybook/preview.js
전역 변수를 정의했습니다.그런 다음
src/stories/Button.stories.js
파일에서 매개변수의 locale
속성과 함께 globals.locale
전역 속성을 얻습니다.right
속성은 데코레이터에 연결할 때 도구 모음 메뉴의 오른쪽에 표시되는 텍스트입니다.애드온 내 전역 사용
애드온 파일 내에서 전역을 사용할 수 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
import React from 'react';
import { useGlobals } from '@storybook/api';
import { addons, types } from '@storybook/addons';
import { AddonPanel, Spaced, Title } from '@storybook/components';
const LocalePanel = props => {
const [{ locale }] = useGlobals();
return (
<>
<style>
{`
#panel-tab-content > div > div[hidden] {
display: flex !important
}
`}
</style>
<AddonPanel {...props}>
<Spaced row={3} outer={1}>
<Title>{locale}</Title>
</Spaced>
</AddonPanel>
</>
);
};
const ADDON_ID = 'locale-panel';
const PANEL_ID = `${ADDON_ID}/panel`;
addons.register(ADDON_ID, (api) => {
addons.add(PANEL_ID, {
type: types.PANEL,
title: 'Locale',
render: ({ active, key }) => {
return <AddonPanel active={active} key={key}>
<LocalePanel />
</AddonPanel>
},
});
});
애드온을 추가하고
useGlobal
후크를 사용하여 전역 속성을 가져옵니다.AddonPanel
, Spaced
, Title
속성을 사용하여 애드온 패널 내부에 콘텐츠를 표시합니다.addons.register
메소드는 스토리북의 애드온 패널에 표시되도록 애드온을 등록합니다.또한 패널을 렌더링할
AddonPanel
가 있습니다.style
태그가 있는 패널을 표시할 때 표시되도록 합니다.스토리 렌더링
스토리가 렌더링되는 방식을 변경할 수 있습니다.
head
태그에 추가하기 위해 HTML 코드를 .storybook/preview-head.html
파일에 추가합니다.<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous">
그런 다음 iframe 내부의 head 태그에 표시됩니다.
결론
Storybook으로 애드온 패널을 추가할 수 있습니다.
또한 iframe의 head 태그 안에 태그를 추가할 수 있습니다.
Reference
이 문제에 관하여(React용 스토리북 — 글로벌 및 애드온 및 스토리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/storybook-for-react-globals-and-addons-and-stories-1ah7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)